From: Giovanni Campagna Date: Tue, 8 Oct 2013 21:34:33 +0000 (+0200) Subject: AirplaneMode: don't show a "Turn off" item if HW enabled X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~2842 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=df3a50bae8d2711f2b8b279b918a8aa71cf175f0;p=gnome-shell.git AirplaneMode: don't show a "Turn off" item if HW enabled If airplane mode is enabled with an HW switch, we can't turn it off from the menu, so make the menu item insensitive and replace it with a helpful tip. https://bugzilla.gnome.org/show_bug.cgi?id=709685 --- diff --git a/js/ui/status/rfkill.js b/js/ui/status/rfkill.js index 487e05fec..2be7bf981 100644 --- a/js/ui/status/rfkill.js +++ b/js/ui/status/rfkill.js @@ -12,6 +12,7 @@ const OBJECT_PATH = '/org/gnome/SettingsDaemon/Rfkill'; const RfkillManagerInterface = ' \ \ \ + \ \ '; @@ -45,7 +46,7 @@ const Indicator = new Lang.Class({ this._item = new PopupMenu.PopupSubMenuMenuItem(_("Airplane Mode"), true); this._item.icon.icon_name = 'airplane-mode-symbolic'; this._item.status.text = _("On"); - this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() { + this._offItem = this._item.menu.addAction(_("Turn Off"), Lang.bind(this, function() { this._proxy.AirplaneMode = false; })); this._item.menu.addSettingsAction(_("Network Settings"), 'gnome-network-panel.desktop'); @@ -54,7 +55,15 @@ const Indicator = new Lang.Class({ _sync: function() { let airplaneMode = this._proxy.AirplaneMode; + let hwAirplaneMode = this._proxy.HardwareAirplaneMode; + this._indicator.visible = airplaneMode; this._item.actor.visible = airplaneMode; + this._offItem.setSensitive(!hwAirplaneMode); + + if (hwAirplaneMode) + this._offItem.label.text = _("Use hardware switch to turn off"); + else + this._offItem.label.text = _("Turn Off"); }, });